﻿using Microsoft.AspNetCore.Mvc;
using Configuration.ServerApi.Param;
using System.Threading.Tasks;

namespace Configuration.ServerApi.Service
{
    /// <summary>
    /// IUserService
    /// </summary>
    public interface IUserService
    {
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> AuthLogin(UpdateModel param);

        /// <summary>
        /// 修改登录用户密码
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateLoginUserPassword(UpdateModel param);

        /// <summary>
        /// 获取用户列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UserList(SearchModel param);

        /// <summary>
        /// 获取用户详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UserDetail(SearchModel param);

        /// <summary>
        /// 获取登录用户详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> LoginUserDetail();

        /// <summary>
        /// 提交用户信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitUser(UpdateModel param);

        /// <summary>
        /// 批量启用或禁用用户
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateUserStatus(UpdateModel param);

        /// <summary>
        /// 批量删除用户信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelUser(UpdateModel param);

        /// <summary>
        /// 获取角色列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> RoleList(SearchModel param);

        /// <summary>
        /// 获取角色详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> RoleDetail(SearchModel param);

        /// <summary>
        /// 提交角色信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitRole(UpdateModel param);

        /// <summary>
        /// 批量启用或禁用角色
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateRoleStatus(UpdateModel param);

        /// <summary>
        /// 批量删除角色信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelRole(UpdateModel param);

    }
}
